<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>电子科大网络安全云平台</title>
    <link rel="stylesheet" href="layui/css/layui.css">
</head>
<body>
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo layui-hide-xs layui-bg-black">电子科大网络安全云平台</div>
        <!-- 头部区域（可配合layui 已有的水平导航） -->
        <ul class="layui-nav layui-layout-left">
            <!-- 移动端显示 -->
            <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft">
                <i class="layui-icon layui-icon-spread-left"></i>
            </li>

            <li class="layui-nav-item layui-hide-xs"><a href="">分支系统</a></li>
            <li class="layui-nav-item layui-hide-xs"><a href="">追溯系统</a></li>
            <li class="layui-nav-item layui-hide-xs"><a href="">备份系统</a></li>
            <li class="layui-nav-item">
                <a href="javascript:;">日志系统</a>
                <dl class="layui-nav-child">
                    <dd><a href="">日志服务01</a></dd>
                    <dd><a href="">日志服务02</a></dd>
                    <dd><a href="">日志服务03</a></dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item layui-hide layui-show-md-inline-block">
                <a href="javascript:;">
                    <img src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg" class="layui-nav-img">
                    dzkd_admin
                </a>
                <dl class="layui-nav-child">
                    <dd><a href="">基础信息</a></dd>
                    <dd><a href="">退出</a></dd>
                </dl>
            </li>
        </ul>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域（可配合layui已有的垂直导航） -->
            <ul class="layui-nav layui-nav-tree" lay-filter="test">
                <li class="layui-nav-item layui-nav-itemed">
                    <a class="" href="javascript:;">基础数据管理</a>
                    <dl class="layui-nav-child">
                        <dd class="layui-this"><a href="department.html">部门管理</a></dd>
                        <dd><a href="role.html">权限管理</a></dd>
                        <dd><a href="user.html">用户管理</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item layui-nav-itemed">
                    <a href="javascript:;">漏洞扫描管理</a>
                    <dl class="layui-nav-child">
                        <dd><a href="module.html">扫描结果</a></dd>
                        <dd><a href="javascript:;">风险等级</a></dd>
                        <dd><a href="javascript:;">安全漏洞</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item layui-nav-itemed">
                    <a href="javascript:;">基线任务管理</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">客户机管理</a></dd>
                        <dd><a href="javascript:;">基线管理</a></dd>
                        <dd><a href="javascript:;">客户机基线</a></dd>
                    </dl>
                </li>
            </ul>
        </div>
    </div>

    <div class="layui-body">
        <!-- 内容主体区域 -->
        <div style="padding: 15px;">

            <!-- 内容主体区域  面包屑-->
            <span class="layui-breadcrumb">
              <a href="index.html">首页</a>
              <a><cite>基础数据管理</cite></a>
              <a><cite>部门管理</cite></a>
            </span>

            <!-- 水平线 -->
            <hr class="layui-bg-blue">

            <!-- 搜索条件 -->
            <fieldset class="layui-elem-field">
                <legend>筛选条件</legend>
                <div class="layui-field-box">
                    <div class="layui-form-item layui-form-pane">
                        <label class="layui-form-label">部门名称</label>
                        <div class="layui-input-inline">
                            <input type="text" id="search_departmentName" placeholder="请输入部门名称" class="layui-input">
                        </div>

                        <label class="layui-form-label">创建时间</label>
                        <div class="layui-input-inline">
                            <input type="text" id="search_departCreateTime" placeholder="请输入创建时间" class="layui-input">
                        </div>
                    </div>

                    <div class="layui-form-item layui-form-pane">
                        <div class="layui-inline">
                            <button class="layui-btn layui-btn-radius layui-btn-warm" id="iReset">重置</button>
                            <button class="layui-btn layui-btn-radius layui-btn-normal" id="searchVal">搜索</button>
                        </div>
                    </div>
                </div>
            </fieldset>

            <table class="layui-hide" id="test" lay-filter="test"></table>
        </div>
    </div>

    <div class="layui-footer">
        <!-- 底部固定区域 -->
        copyright©电子科技大学  www.uestc.edu.cn
    </div>
</div>
<script src="./layui/layui.js"></script>
<script type="text/html" id="toolbarDemo">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
        <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
        <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
        <button class="layui-btn layui-btn-sm" lay-event="insertData">新增部门</button>
    </div>
</script>

<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>

<script type="text/html" id="insert_form">
    <div class="layui-field-box">
        <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">部门名称</label>
            <div class="layui-input-inline">
                <input type="text" id="insert_departmentName" class="layui-input" placeholder="请输入部门名称">
            </div>
        </div>

        <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">创建时间</label>
            <div class="layui-input-inline">
                <input type="text" id="insert_departCreateTime" class="layui-input" placeholder="请输入创建时间">
            </div>
        </div>
    </div>
</script>

<script type="text/html" id="update_form">
    <div class="layui-field-box">
        <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">部门名称</label>
            <div class="layui-input-inline">
                <input type="text" id="update_departmentName" class="layui-input" placeholder="请输入部门名称">
            </div>
        </div>

        <div class="layui-form-item layui-form-pane">
            <label class="layui-form-label">创建时间</label>
            <div class="layui-input-inline">
                <input type="text" id="update_departCreateTime" class="layui-input" placeholder="请输入创建时间">
            </div>
        </div>
    </div>
</script>


<script src="layui/layui.js" charset="utf-8"></script>
<script src="jquery/jquery-3.6.0.js" charset="utf-8"></script>
<!-- 注意：如果你直接复制所有代码到本地，上述 JS 路径需要改成你本地的 -->

<script>

    $("#searchVal").click(function () {
        let search_departmentName = $("#search_departmentName").val();
        let search_departCreateTime = $("#search_departCreateTime").val();
        flushTable(search_departmentName, search_departCreateTime);
    });

    $("#iReset").click(function () {
        $("#search_departmentName").val("");
        $("#search_departCreateTime").val("");
        flushTable();
    });

    function flushTable(search_departmentName, search_departCreateTime) {
        let searchJSON = {};

        if(search_departmentName != null && search_departmentName !== '') {
            searchJSON.departmentName = search_departmentName;
        }

        if(search_departCreateTime != null && search_departCreateTime !== '') {
            searchJSON.departCreateTime = search_departCreateTime;
        }

        console.log("searchJSON=" + JSON.stringify(searchJSON));

        layui.use('table', function(){
            var table = layui.table;

            table.render({
                elem: '#test'
                ,url:'/department/selectDepartments'   // 后台服务的网络接口路径
                ,where: searchJSON       // layui传递搜索条件
                ,toolbar: '#toolbarDemo' //开启头部工具栏，并为其绑定左侧模板
                ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义，去除该参数即可
                    title: '提示'
                    ,layEvent: 'LAYTABLE_TIPS'
                    ,icon: 'layui-icon-tips'
                }]
                ,title: '用户数据表'    // 用户无法看到此名字
                ,cols: [[
                    {type: 'checkbox', fixed: 'left'}
                    ,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, templet: function(res){
                            return '<em>'+ res.id +'</em>'
                        }}
                    ,{field:'departmentName', title:'部门名称', width:120, edit: 'text', templet: function(res){
                            return '<em>'+ res.departmentName +'</em>'
                        }}
                    ,{field:'departCreateTime', title:'创建时间', width:220, edit: 'text', templet: function(res){
                            return '<em>'+ res.departCreateTime +'</em>'
                        }}
                    ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
                ]]
                ,page: true
            });

            //头工具栏事件
            table.on('toolbar(test)', function(obj){
                var checkStatus = table.checkStatus(obj.config.id);
                switch(obj.event){
                    case 'getCheckData':
                        var data = checkStatus.data;
                        layer.alert(JSON.stringify(data));
                        break;
                    case 'getCheckLength':
                        var data = checkStatus.data;
                        layer.msg('选中了：'+ data.length + ' 个');
                        break;
                    case 'isAll':
                        layer.msg(checkStatus.isAll ? '全选': '未全选');
                        break;
                    case 'insertData':
                        layer.open({     // 弹出框处理  模态框
                            type: 1               // 模态框
                            ,title: '新增部门' //不显示标题栏
                            ,closeBtn: false
                            ,area: ['500px','500px']  // 宽和高
                            ,shade: 0.5
                            ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
                            ,btn: ['新增', '取消']
                            ,btnAlign: 'c'
                            ,moveType: 1 //拖拽模式，0或者1
                            ,content: $('#insert_form').html()         // 引入自定义表单
                            ,btn1: function(index, layero){            // 这个是新增按钮点击事件
                                // layer.msg("新增按钮执行");
                                let departmentName = $("#insert_departmentName").val();
                                let departCreateTime = $("#insert_departCreateTime").val();
                                $.ajax({
                                    url:"/department/insert",           // 请求路径
                                    type:"post",                  // 请求的方式，不区分大小写
                                    cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                                    contentType:"application/json;charset=utf-8",
                                    data: JSON.stringify({
                                        departmentName:departmentName,
                                        departCreateTime:departCreateTime
                                    }),
                                    datatype:"json",        // 返回类型，text文本、html页面、json数据
                                    success:function(response){
                                        console.log("返回: " + JSON.stringify(response));
                                        if(response.code === 200) {
                                            layer.msg("新增部门成功!");
                                            layer.close(index);                         // 关闭当前窗口
                                            flushTable();                               // 重新渲染数据库最新的数据结果
                                        }
                                    },
                                    error:function(response){
                                        console.log("出错返回: " + response);
                                    }
                                });
                            }
                            ,success: function(layero){
                                // 初始化日期时间选择器
                                layui.use('laydate', function() {
                                    var laydate = layui.laydate;
                                    laydate.render({
                                        elem: '#insert_departCreateTime'
                                        , type: 'datetime'
                                    });
                                });
                            }
                        });
                        break;

                    //自定义头工具栏右侧图标 - 提示
                    case 'LAYTABLE_TIPS':
                        layer.alert('这是工具栏右侧自定义的一个图标按钮');
                        break;
                };
            });

            //监听行工具事件
            table.on('tool(test)', function(obj){
                var data = obj.data;
                console.log(JSON.stringify(obj));
                if(obj.event === 'del'){
                    layer.confirm('真的删除行么', function(index){
                        // obj.del();                     // 虚拟删除
                        $.ajax({
                            url:"/department/delete",           // 请求路径
                            type:"post",                  // 请求的方式，不区分大小写
                            cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                            data: {
                                id:data.id
                            },
                            datatype:"json",        // 返回类型，text文本、html页面、json数据
                            success:function(response){
                                console.log("返回: " + JSON.stringify(response));
                                if(response.code === 200) {
                                    layer.msg("删除成功!");
                                    layer.close(index);                         // 关闭当前窗口
                                    flushTable();                               // 重新渲染数据库最新的数据结果
                                }
                            },
                            error:function(response){
                                console.log("出错返回: " + response);
                            }
                        });
                    });
                } else if(obj.event === 'edit'){
                    layer.open({     // 弹出框处理  模态框
                        type: 1               // 模态框
                        ,title: '更新部门' //不显示标题栏
                        ,closeBtn: false
                        ,area: ['500px','500px']  // 宽和高
                        ,shade: 0.5
                        ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
                        ,btn: ['更新', '取消']
                        ,btnAlign: 'c'
                        ,moveType: 1 //拖拽模式，0或者1
                        ,content: $('#update_form').html()         // 引入自定义表单
                        ,btn1: function(index, layero){            // 这个是按钮点击事件
                            let departmentName = $("#update_departmentName").val();
                            let departCreateTime = $("#update_departCreateTime").val();
                            if(departmentName == null || departmentName === '') {
                                layer.msg('请输入部门名称');
                                return;       // 终止后续的代码执行，任何语言都拥有此功能
                            }
                            if(departCreateTime == null || departCreateTime === '') {
                                layer.msg('请输入部门创建时间');
                                return;      // 终止后续的代码执行，任何语言都拥有此功能
                            }
                            $.ajax({
                                url:"/department/update",           // 请求路径
                                type:"post",                  // 请求的方式，不区分大小写
                                cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                                contentType:"application/json;charset=utf-8",
                                data: JSON.stringify({
                                    departmentName:departmentName,
                                    departCreateTime:departCreateTime,
                                    id:data.id
                                }),
                                datatype:"json",        // 返回类型，text文本、html页面、json数据
                                success:function(response){
                                    console.log("返回: " + JSON.stringify(response));
                                    if(response.code === 200) {
                                        layer.msg("更新部门成功!");
                                        layer.close(index);                         // 关闭当前窗口
                                        flushTable();                               // 重新渲染数据库最新的数据结果
                                    }
                                },
                                error:function(response){
                                    console.log("出错返回: " + response);
                                }
                            });
                        }
                        ,success: function(layero){               // 在用户未看到弹出框之前的时候，初始化的数据内容放置在这里
                            $("#update_departmentName").val(data.departmentName);
                            $("#update_departCreateTime").val(data.departCreateTime);
                            // 初始化日期时间选择器
                            layui.use('laydate', function() {
                                var laydate = layui.laydate;
                                laydate.render({
                                    elem: '#update_departCreateTime'
                                    , type: 'datetime'
                                });
                            });
                        }
                    });
                }
            });
        });
    }

    flushTable();   // 默认页面加载的时候，自动调用一次
</script>
</body>
</html>